//user相关的js代码实现
layui.use(['table','form'], function(){
    var table = layui.table;
    var $=layui.jquery;
    var form = layui.form;
    //展示所有的纸条数据
    table.render({
        elem: '#userData'
        ,height: 600
        ,url: 'paper/get_all_users'
        ,method:'post'
        ,where: {
            'token': window.localStorage.managerToken
        }
        ,cols: [
            [ //表头
                {field: 'id', title: '用户ID', width:100, sort: true, fixed: 'left'}
                ,{field: 'u_name', title: '姓名', width: 170}
                ,{field: 'u_pwd', title: '密码',width: 150}
                ,{field: 'sex', title: '性别',templet: '#sexShow', width: 90}
                ,{field: 'mail', title: '邮箱', width:165}
                ,{field: 'realFlag', title: '实名状态',templet: '#real', width:165}
                ,{field: 'special', title: '用户身份',templet: '#special', width:165}
                ,{field: 'headImgs', title: '用户头像',templet: '#headImgs', width:165}
                ,{field: 'ban', title: '封号状态',templet: '#ban', width:165}
                ,{field: 'fan', title: '粉丝数量', width:170,sort: true}
                ,{field: 'report', title: '举报次数', width:170,sort: true}
                ,{field: 'lauchNum', title: '放入字条数目', width:170,sort: true}
                ,{field: 'takeNum', title: '拿出纸条数目', width:170,sort: true}
                ,{fixed: 'right', title:'操作', toolbar: '#barDemo', width:150}
            ]
        ]
        ,page: true //开启分页
        , limits: [3, 5, 10]  //一页选择显示3,5或10条数据
        , limit: 5  //一页显示10条数据
        , parseData: function (res) { //将原始数据解析成 table 组件所规定的数据，res为从url中get到的数据
            if(res.status==="token_error")
            {
                window.location.assign("/")
                return;
            }

            var result;
            if (this.page.curr) {
                result = res.data.slice(this.limit * (this.page.curr - 1), this.limit * this.page.curr);
            } else {
                result = res.data.slice(0, this.limit);
            }
            return {
                "code": 0, //解析接口状态
                "msg": "ok", //解析提示文本
                "count": res.data.length, //解析数据长度
                "data": result //解析数据列表
            };
        }
    });


    //修改开关的状态
    //1:封号
    //0:不封号
    function checkStatus(flag,data)
    {
        if(flag==1)
        {
            // 设置为原始状态（恢复状态）
            data.elem.checked =true;
            // 渲染方法1：渲染全部表单的checkbox
            form.render('checkbox');
        }
        else if(flag==0)
        {
            // 设置为原始状态（恢复状态）
            data.elem.checked =false;
            // 渲染方法1：渲染全部表单的checkbox
            form.render('checkbox');
        }
    }

    //监听封号操作
    form.on('checkbox(lockDemo)', function(obj){
        var chose=obj.elem.checked;//判断当前状态
        if(!chose)//解封
        {
            //解封
            var index=layer.confirm('<font color=#adff2f>确认解封？</font>', {
                btn: ['确认', '取消']
                ,yes: function(index, layero){
                    //发送请求
                    $.ajax({
                        url:'remove_banned_user_by_id',
                        type:'post',
                        data:{"u_id":obj.elem.attributes.u_id.nodeValue},
                        success:function (res)
                        {
                            if(res.status==="handle_success")
                            {
                                obj.value=0
                                layer.msg('成功', {icon: 1});
                                return;
                            }
                            if(res.status==="database_error")
                            {
                                checkStatus(1,obj);
                                layer.msg('数据库操作出现异常', {icon: 5});
                                return;
                            }
                            checkStatus(0,obj);
                        }
                        ,error:function ()
                        {
                            checkStatus(1,obj);
                            layer.msg('数据库操作出现异常', {icon: 5});
                        }
                    })
                },
                //取消解封，还是封号
                btn2: function (index,layero)
                {
                    checkStatus(1,obj);
                },
                //如果直接关闭弹出层，那么还是需要回复到下架状态
                cancel: function(index, layero){
                    //下架
                    checkStatus(1,obj);
                }
            });
            layer.title("<font color=#adff2f>解封</font>",index)
        }
        else//封号
        {
            var index=layer.confirm('<font color=red>确认封号？</font>', {
                btn: ['确认', '取消']
                ,yes: function(index, layero){
                    //发送请求
                    $.ajax({
                        url:'banned_user_by_id',
                        type:'post',
                        data:{"u_id":obj.elem.attributes.u_id.nodeValue},
                        success:function (res)
                        {
                            if(res.status==="handle_success")
                            {
                                obj.value=1;
                                layer.msg('成功', {icon: 1});
                                return;
                            }
                            checkStatus(0,obj);
                            layer.msg('数据库或者文件操作出现异常', {icon: 1});
                        }
                        ,error:function ()
                        {
                            checkStatus(0,obj);
                            layer.msg('数据库或者文件操作出现异常', {icon: 1});
                        }
                    })
                },
                //取消封号，还是不封号状态
                btn2: function (index,layero)
                {
                    checkStatus(0,obj);
                    obj.value=0;
                },
                //如果直接关闭弹出层，那么还是需要回复到下架状态
                cancel: function(index, layero){
                    //下架
                    checkStatus(0,obj);
                }
            });

            layer.title("<font color=red>封号</font>",index)

        }
    });

    //工具条事件
    table.on('tool(userFilter)', function(obj){ //注：tool 是工具条事件名，test 是 table 原始容器的属性 lay-filter="对应的值"
        var data = obj.data; //获得当前行数据
        var layEvent = obj.event; //获得 lay-event 对应的值（也可以是表头的 event 参数对应的值）
        var tr = obj.tr; //获得当前行 tr 的 DOM 对象（如果有的话）
        obj_temp=obj;
        if(layEvent === 'del'){ //删除
            var index1=layer.confirm('<font color=red>删除用户</font>', {
                btn: ['确认', '取消']
                ,yes: function(index, layero)
                {
                    obj_index=index;
                    //发送ajax
                    delUserById(obj.data.id)
                },
                btn2: function (index,layero)
                {

                }
            });
            layer.title("<font color=red>确认删除</font>",index1)
        }
    });

    $("#sreach").click(function (){
        //表格重载实现搜索功能
        //上述方法等价于
        table.reload('userData',
            {
                url: 'paper/get_target_user',
                method:'post'
                ,where:
                    {
                        //公告的名称
                        u_name : $("#u_name").val(),
                        token: window.localStorage.managerToken
                    }
                ,page: {
                    curr: 1 //重新从第 1 页开始
                }
            }); //只重载数据
    })

});

//删除纸条的方法
function delUserById(u_id)
{
    $.ajax({
        url: "del_user_by_id",
        type: 'post',
        data: {"u_id":u_id},
        success: function (res)
        {
            if(res.status==="handle_success")
            {
                obj_temp.del(); //删除对应行（tr）的DOM结构，并更新缓存
                layer.close(obj_index);
                layer.msg('删除成功', {icon: 1});
                return;
            }
            layer.msg('删除失败', {icon: 5});
        }
    })
}
